#include "file.h"
//更新文件 写入文件
void list_update_file(list_str *L)
{
    //安全判定
    if(NULL==L)
    {
        printf("表为空\n");
        exit(-1);
    }
    //打开文件
    FILE *fp=fopen(FILE_NAME,"w+");
    for (size_t i = 0; i < L->len; i++)
    {
        fprintf(fp,"%s\t%s\t%s\t%s\t%d\t%d\t%d\n",\
            L->date[i].user_name,L->date[i].password,\
            L->date[i].name,L->date[i].sex,L->date[i].id,\
            L->date[i].age,L->date[i].sco
               );
    }
    fclose(fp);
}

//更新顺序表
void file_update_list(list_str *L)
{
    //安全判定
    if(NULL==L)
    {
        printf("表为空\n");
        exit(-1);
    }

    //打开文件
    FILE *fp=fopen(FILE_NAME,"r+");
    if(NULL==fp)
    {
        printf("文件打开失败\n");
        exit(-1);
    }

    //让文件流回到开头
    fseek(fp,0,SEEK_SET);

    //获取文件行数
    int len=0;
    int ch=0;

    //EOF为文件结尾
    while(EOF!=(ch=fgetc(fp)))
    {
        if('\n'==ch)
        len++;
    }
    //printf("顺序表长度为:%d\n1",len);

    //让文件流回到开头
    fseek(fp,0,SEEK_SET);

    //读取文件到顺序表
    stu_user s1;
    for (size_t i = 0; i < len; i++)
    {
        fscanf( fp , "%s\t%s\t%s\t%s\t%d\t%d\t%d\n" , \
            s1.user_name,s1.password , \
            s1.name,s1.sex,&s1.id , \
            &s1.age,&s1.sco
              );
        // 插入到表中
        list_add(L , s1);
    }
    //关闭文件
    fclose(fp);
}